iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
自我挑戰組

Makefile的入門講解系列 第 8

Makefile的入門講解 - day 8 簡單的測試2 - 規則說明1

  • 分享至 

  • xImage
  •  

今天想講幾個 規則 的設定

  1. 主要架構 → 目標、依賴 與 操作
  2. 規則必須要有目標,默認目標為 第一個目標
  3. 規則可以 沒有依賴
  4. 規則可以 沒有命令
  5. 規則可以多個依賴
  6. 規則可以設定偽目標

首先先寫一個簡單的範例

.PONHY: clean
all:test1
test1:test1.o
        @echo "GO1  "
test2:test2.o test1.o
        @echo "GO2  "
test1.o:
        @echo "test1: "
test2.o:
        @echo "test2: "
clean:
        rm -f test1 test1.o

1. 主要架構 → 目標、依賴 與 操作

首先昨天的範例中講到了最主要的規則

target(目標): dependencies(依賴)
<tab> 命令1 (操作)
<tab> 命令2
.......

2. 規則必須要有目標,默認目標為第一個目標

最初一定要設定一個 目標
執行 make 時

make <目標> 

執行 make 再範例中會執行第一個,就是目標 all

all:test1

輸入:

make

輸出:

test1:
GO1

執行 make test2.o 再範例中會執行目標 test2.o

輸入:

make test2.o

輸出:

test2:

執行 make clean 再範例中會執行目標 clean

輸入:

make clean

輸出:

rm -f test1 test1.o

3. 規則可以沒有依賴

再範例中的目標test.o 就沒有任何依賴

test1.o:
        @echo "test1: "

輸入:

make test1.o

輸出:

test1:

4. 規則可以 沒有命令

再範例中開頭的目標all 就沒有命令

all:test1

輸入:

make all

輸出:

test1:
GO1

5. 規則可以多個依賴

再範例中的目標test2 就有兩個依賴

test2:test2.o test1.o
        @echo "GO2  "

輸入:

make test2

輸出:

test2:
test1:
GO2

6. 規則可以設定偽目標

使用 .PONHY 就可以設定偽目標

範例中clean 就是偽目標

.PONHY: clean

上一篇
Makefile的入門講解 - day 7 簡單的測試1
下一篇
Makefile的入門講解 - day 9 簡單的測試3 - 變量1 模式匹配
系列文
Makefile的入門講解11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言